/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package BackEnd;

import Dao.PaisDao;
import Dao.PaisValueObject;
import Dao.PkId;
import Dao.ProvinciaDao;
import Dao.ProvinciaValueObject;
import BackEnd.Exceptions.NotExistRegisterException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author emmanuel
 */
public class Provincia {

    private long id;
    private String nombre;
    private Pais pais;

    public Provincia(String nombre, Pais pais) {
        this.id = 0;
        this.nombre = nombre;
        this.pais = pais;
    }

    public Provincia() {
    }

    

    public static ArrayList<Provincia> getAllProvince() {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * @return the pais
     */
    public Pais getPais() {
        return pais;
    }

    /**
     * @param pais the pais to set
     */
    public void setPais(Pais pais) {
        this.pais = pais;
    }

    /**
     * @return the id
     */
    public long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(long id) {
        this.id = id;
    }

    boolean abrir(long id) {
        ProvinciaDao pdao = new ProvinciaDao();
        PaisDao padao = new PaisDao();
        PkId pPk = new PkId((int)id);
        ProvinciaValueObject pvo;
        try {
            pvo = (ProvinciaValueObject) pdao.traer(pPk);
            this.id = pvo.getId();
            this.nombre = pvo.getNombre();
            PkId paPk = new PkId(pvo.getIdPais());
            this.pais = new Pais();
            this.pais.abrir(pvo.getIdPais());
            return true;
        } catch (NotExistRegisterException ex) {
            Logger.getLogger(Provincia.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
    }

}
